Fleetrun
Hecterra
NimBus
Otras aplicaciones
Wialon para Android/iOS
Logistics
Wialon Local
Wialon Hosting
WiaTag
Configurator
LeaseControl
es
Contenido
Introducción al SDK: ejecución de informes
  • technical_consulting

En este artículo se considerará el trabajo con plantillas de informes mediante el Remote API. La ejecución de informes a través del SDK implica una secuencia de acciones obligatorias que no son visibles al trabajar en la interfaz web. Para una visión completa, se proporcionarán ejemplos de trabajo con informes con y sin agrupación.

También pueden ser útiles:

Creación de informes

En la mayoría de los casos, los usuarios crean plantillas de informes en la interfaz web y luego las ejecutan mediante solicitudes API. A continuación, consideraremos precisamente estos casos.

Sin embargo, la creación de plantillas de informes también está disponible a través del SDK, para lo cual se debe utilizar la solicitud report/update_report.

Secuencia de acciones

Para obtener resultados de informes mediante el Remote API, es necesario enviar varias solicitudes consecutivas. El uso de algunas de ellas depende de la presencia de agrupación en el informe y de la cantidad de datos analizados. Presentamos la lista más general de acciones:

  1. Autorización mediante la solicitud token/login y configuración de la localización mediante la solicitud render/set_locale.

  2. Obtención de los ID del sistema necesarios para:

    • el objeto para el cual se debe ejecutar el informe;

      Dado que los informes pueden ejecutarse para conductores, remolques, pasajeros, geocercas y sus grupos, en algunos casos también será necesario obtener los IDs del sistema para estos subelementos.

    • el recurso en el que se encuentra la plantilla del informe;
    • la propia plantilla del informe.

  3. Ejecución del informe mediante la solicitud report/exec_report.

    En general, recomendamos ejecutar el informe en segundo plano en el servidor. A pesar del aumento en la cantidad de pasos, esto puede ser útil si el informe puede tardar mucho en ejecutarse debido a la gran cantidad de unidades, el intervalo de ejecución del informe, la cantidad de tablas y gráficos, etc. A continuación, en el artículo se considerará precisamente la ejecución del informe en segundo plano.

    Si el informe no se ejecuta en segundo plano en el servidor, la respuesta a esta solicitud será similar a la respuesta del paso 5, por lo que se puede pasar directamente al paso 6.

  4. Verificación del estado de ejecución del informe mediante la solicitud report/get_report_status. Después de confirmar que el informe está listo, se puede continuar con las instrucciones.

  5. Obtención del resultado del informe mediante la solicitud report/apply_report_result.
    El resultado de esta solicitud proporcionará la cantidad de filas, columnas y niveles de anidamiento si hay agrupación.

  6. Obtención de las filas de la tabla mediante la solicitud report/get_result_rows para un informe sin agrupación o mediante la solicitud report/select_result_rows para un informe con agrupación.
    La selección de la tabla, los niveles de anidamiento y las filas mostradas se realiza en función de los datos de la respuesta a la solicitud anterior.

  7. Exportación a archivo mediante la solicitud report/export_result.
    Este paso es opcional, pero bastante sencillo y útil, por lo que también lo consideraremos.

  8. Eliminación del resultado del informe anterior mediante la solicitud report/cleanup_result.
    Este paso es obligatorio si se deben ejecutar varios informes en una sesión.

A continuación, consideraremos dos ejemplos de trabajo con informes (sin agrupación y con agrupación).

Trabajo con un informe sin agrupación

Es necesario obtener los resultados de la ejecución del informe Lista de viajes, disponible para el usuario autorizado por token, para la unidad Truck 0769 (ID del sistema 55555) para el intervalo de tiempo del 30 de junio de 2023 a las 20:00 al 1 de julio de 2023 a las 03:59 (GMT+0) en forma de respuesta a la solicitud API y archivo PDF.

En la interfaz web, el resultado se ve de la siguiente manera:

1. Autorización y configuración de la localización

Usamos la solicitud token/login.

https://hst-api.wialon.com/wialon/ajax.html?svc=token/login&params={"token":"TOKEN_VALUE"}

La autorización se describe con más detalle en uno de los artículos anteriores.

La configuración de la localización incluye la configuración de la zona horaria (también se consideró anteriormente), el formato de la fecha y otros parámetros.

Si la configuración de la zona horaria se realiza dentro de la sesión, al ejecutar el informe, el tiempo se establece en GMT+0.

Usamos la solicitud render/set_locale.

https://hst-api.wialon.com/wialon/ajax.html?svc=render/set_locale&params={"tzOffset":134217728,"language":"es","formatDate":"%25E.%25m.%25Y%20%25H:%25M:%25S"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"tzOffset":134217728Se aplicará la zona horaria GMT+0 (sin horario de verano).
"language":"es"Se utilizará el idioma español.
"formatDate":"%25Y.%25m.%25E%20%25H:%25M:%25S"Se utilizará el formato de fecha yyyy-MM-dd y el formato de hora HH:mm:ss.

No realizar la configuración de la localización puede llevar a diferencias en los resultados al ejecutar el informe mediante el Remote API y la interfaz web.

2. Obtención de los ID del sistema

En uno de los artículos anteriores ya describimos cómo realizar la búsqueda de elementos por criterios, por lo que ahora nos centraremos solo en la búsqueda del recurso y la plantilla del informe.

Obtendremos una lista de todos los recursos en los que se ha creado la plantilla del informe con el nombre Lista de viajes, disponible para el usuario autorizado por token. Usamos la solicitud core/search_items:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={"spec":{"itemsType":"avl_resource","propType":"propitemname","propName":"reporttemplates","propValueMask":"Lista%20de%20viajes","sortType":"sys_name"},"force":1,"flags":8193,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemsType":"avl_resource"La búsqueda se realizará por recursos.
"propType":"propitemname"La búsqueda se realizará por el nombre del subelemento.
"propName":"reporttemplates"La búsqueda se realizará por el nombre de la plantilla del informe.
"propValueMask":"Lista%20de%20viajes"La respuesta mostrará una lista de recursos en los que se ha creado la plantilla del informe con el nombre Lista de viajes.
"sortType":"sys_name"La clasificación se realizará por el nombre del elemento.
"force":1Los resultados de búsquedas anteriores no se tendrán en cuenta.
"flags":8193

La respuesta contendrá información sobre las propiedades básicas y las plantillas de informes creadas.

1 + 8192 = 8193

"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.
 Respuesta
{
	"searchSpec":{
		"itemsType":"avl_resource",
		"propName":"reporttemplates",
		"propValueMask":"Lista de viajes",
		"sortType":"sys_name",
		propType:"propitemname",
		or_logic:"0"
		},
	"dataFlags":8193,
	"totalItemsCount":1,
	"indexFrom":0,
	"indexTo":0,
	"items":[
		{
			"nm":"sdk_account",
			"cls":3,
			"id":12345678,
			"mu":0,
			"rep":{
				1:{
					"id":1,
					"n":"Lista de viajes",
					"ct":"avl_unit",
					"c":59352
				},
				2:{
					"id":2,
					"n":"Viajes con agrupación",
					"ct":"avl_unit",
					"c":6883
				}
			},
			"repmax":-1,
			"uacl":-1
		}
	]
}

Prestemos atención a los siguientes parámetros de la respuesta:

  • nm: nombre del recurso;
  • rep: array de plantillas de informes creadas en el recurso;

    Si este parámetro aparece vacío, significa que no se han creado plantillas de informes en el recurso.

  • n: nombre del subelemento;
  • id: ID del sistema.

En este caso, el usuario tiene acceso al recurso sdk_account con el ID del sistema 12345678, en el que se encuentra la plantilla del informe Lista de viajes con el ID del sistema 1.

3. Ejecución del informe

Usamos la solicitud report/exec_report.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/exec_report&params={"reportResourceId":12345678,"reportTemplateId":1,"reportObjectId":55555,"reportObjectSecId":0,"interval":{"flags":0,"from":1688144400,"to":1688173199},"remoteExec":1}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"reportResourceId":12345678La plantilla del informe se seleccionará del recurso con el ID del sistema 12345678.
"reportTemplateId":1Se ejecutará la plantilla del informe con el ID del sistema 1.
"reportObjectId":55555El informe se ejecutará para la unidad con el ID del sistema 55555.
"reportObjectSecId":0El informe no se ejecutará para un subelemento.
"flags":0El informe se ejecutará para el intervalo especificado.
"from":1688144400

El inicio del intervalo será el 30 de junio de 2023 a las 20:00 (GMT+0).

En las solicitudes se utiliza el tiempo Unix. Para convertir la fecha y hora a tiempo Unix, se pueden usar herramientas en línea de acceso público.

"to":1688173199El final del intervalo será el 1 de julio de 2023 a las 03:59 (GMT+0).
"remoteExec":1El informe se ejecutará en segundo plano en el servidor.
 Respuesta
{
	"remoteExec":1
}

4. Verificación del estado de ejecución

Dado que el informe se ejecuta en segundo plano en el servidor, verificamos el estado de su ejecución utilizando la solicitud report/get_report_status.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/get_report_status&params={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"status":4
}

El código de estado 4 significa que el informe se ha completado. La interpretación de los demás valores se puede encontrar en la página con la descripción de la solicitud.

5. Obtención del resultado del informe

Usamos la solicitud report/apply_report_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/apply_report_result&params={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"reportResult":{
		"msgsRendered":0,
		"stats":[],
		"tables":[
			{
				"name":"unit_trips",
				"label":"Viajes",
				"grouping":{},
				"flags":4224,
				"rows":4,
				"level":1,
				"columns":5,
				"header":[
					"№",
					"Comienzo",
					"Fin",
					"Duración",
					"Kilometraje"
				],
				"header_type":[
					"",
					"time_begin",
					"time_end",
					"duration",
					"mileage"
				]
			}
		],
		"attachments":[]
	}
}

Tres parámetros clave de la respuesta que nos interesan son los siguientes:

  • tables: muestra la cantidad de tablas en el informe en forma de array. En este caso, solo se menciona una tabla: Viajes, por lo que su índice será 0.
  • rows: cantidad de filas en la tabla, en este caso son 4. Por lo tanto, sus índices están en el rango de 0 a 3.
  • level: cantidad de niveles de anidamiento, en este caso es 1, ya que el informe no tiene agrupación.

Los índices de tablas, filas, columnas y niveles de anidamiento comienzan desde 0. Esto debe tenerse en cuenta al referirse a ellos posteriormente.

También se pueden enumerar brevemente otros parámetros de la respuesta. El parámetro columns indica la cantidad de columnas, luego sus nombres se describen en el parámetro header. El valor cero del parámetro msgsRendered indica que en la plantilla del informe no se incluye la visualización de mensajes en el mapa. Los parámetros vacíos stats y attachments indican que en la plantilla del informe no hay Estadísticas ni adjuntos (por ejemplo, gráficas).

6. Obtención de las filas de la tabla

Conociendo el índice del contenido de la tabla, la mostramos utilizando la solicitud report/get_result_rows.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/get_result_rows&params={"tableIndex":0,"indexFrom":0,"indexTo":3}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"tableIndex":0

Se mostrará el contenido de la tabla con el índice 0.

"indexFrom":0

La primera fila mostrada tendrá el índice 0.

"indexTo":3La última fila mostrada tendrá el índice 3.
 Respuesta
[
	{
		"n":0,
		"i1":0,
		"i2":790,
		"t1":1688144420,
		"t2":1688154878,
		"d":0,
		"c":[
			"1",
			{
				"t":"2023-06-30 20:00:20",
				"v":1688144420,
				"y":47.2941741943,
				"x":26.4906959534,
				"u":55555
			},
			{
				"t":"2023-06-30 22:54:38",
				"v":1688154878,
				"y":43.8697662354,
				"x":26.0177116394,
				"u":55555
			},
			"2:54:18",
			"469.54 km"
		]
	},
	{
		"n":1,
		"i1":936,
		"i2":2171,
		"t1":1688155181,
		"t2":1688169690,
		"d":0,
		"c":[
			"2",
			{
				"t":"2023-06-30 22:59:41",
				"v":1688155181,
				"y":43.8698196411,
				"x":26.0177154541,
				"u":55555
			},
			{
				"t":"2023-07-01 03:01:30",
				"v":1688169690,
				"y":41.7139854431,
				"x":26.3660545349,
				"u":55555
			},
			"4:01:49",
			"343.84 km"
		]
	},
	{
		"n":2,
		"i1":2340,
		"i2":2486,
		"t1":1688170034,
		"t2":1688170841,
		"d":0,
		"c":[
			"3",
			{
				"t":"2023-07-01 03:07:14",
				"v":1688170034,
				"y":41.7140579224,
				"x":26.365901947,
				"u":55555
			},
			{
				"t":"2023-05-01 09:23:10",
				"v":1688170841,
				"y":41.7122383118,
				"x":26.3712425232,
				"u":55555
			},
			"0:13:27",
			"1.39 km"
		]
	},
	{
		"n":3,
		"i1":2833,
		"i2":2910,
		"t1":1688171565,
		"t2":1688173175,
		"d":0,
		"c":[
			"4",
			{
				"t":"2023-07-01 03:32:45",
				"v":1688171565,
				"y":41.7120819092,
				"x":26.3711204529,
				"u":55555
			},
			{
				"t":"2023-07-01 03:59:35",
				"v":1688173175,
				"y":41.5760040283,
				"x":26.9871864319,
				"u":55555
			},
			"0:26:50",
			"57.84 km"
		]
	}
]

7. Exportación a archivo

Exportamos el resultado a un archivo PDF utilizando la solicitud report/export_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/export_result&params={"format":2,"compress":0,"outputFileName":"Lista%20de%20viajes"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"format":2El resultado del informe se exportará en formato PDF.
"compress":0El archivo exportado no se comprimirá (no se añadirá a un archivo).
"outputFileName":"Lista%20de%20viajes"El archivo exportado tendrá el nombre Lista de viajes.

La respuesta a esta solicitud API no se muestra, en su lugar, la descarga del archivo comienza automáticamente.

8. Eliminación del resultado del informe anterior

Usamos la solicitud report/cleanup_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/cleanup_result&params={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"error":0
}

Un valor de cero significa que la eliminación fue exitosa.

Trabajo con un informe con agrupación

Es necesario obtener los resultados de la ejecución del informe Viajes con agrupación, disponible para el usuario autorizado por token, para la unidad Truck 0769 (ID del sistema 55555) para el intervalo de tiempo del 30 de junio de 2023 a las 20:00 al 1 de julio de 2023 a las 03:59 (GMT+0) en forma de respuesta a la solicitud API y archivo PDF.

En la interfaz web, el resultado se ve de la siguiente manera:

El resultado de la ejecución en la interfaz web muestra que la tabla Viajes tiene una agrupación por meses y fechas, es decir, el informe tiene 3 niveles de anidamiento:

  • En el primer nivel se encuentran las filas con los meses;
  • En el segundo nivel, las filas con las fechas dentro del mes;
  • En el tercer nivel, las filas con los viajes dentro de la fecha.

1. Autorización y configuración de la localización

Usamos la solicitud token/login.

https://hst-api.wialon.com/wialon/ajax.html?svc=token/login&params={"token":"TOKEN_VALUE"}

La autorización se describe con más detalle en uno de los artículos anteriores.

La configuración de la localización incluye la configuración de la zona horaria (también se consideró anteriormente), el formato de la fecha y otros parámetros.

Si la configuración de la zona horaria se realiza dentro de la sesión, al ejecutar el informe, el tiempo se establece en GMT+0.

Usamos la solicitud render/set_locale.

https://hst-api.wialon.com/wialon/ajax.html?svc=render/set_locale&params={"tzOffset":134217728,"language":"es","formatDate":"%25E.%25m.%25Y%20%25H:%25M:%25S"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"tzOffset":134217728Se aplicará la zona horaria GMT+0 (sin horario de verano).
"language":"es"Se utilizará el idioma español.
"formatDate":"%25Y.%25m.%25E%20%25H:%25M:%25S"Se utilizará el formato de fecha yyyy-MM-dd y el formato de hora HH:mm:ss.

No realizar la configuración de la localización puede llevar a diferencias en los resultados al ejecutar el informe mediante el Remote API y la interfaz web.

2. Obtención de los ID del sistema

En uno de los artículos anteriores ya describimos cómo realizar la búsqueda de elementos por criterios, por lo que ahora nos centraremos solo en la búsqueda del recurso y la plantilla del informe.

Obtendremos una lista de todos los recursos en los que se ha creado la plantilla del informe con el nombre Viajes con agrupación, disponible para el usuario autorizado por token. Usamos la solicitud core/search_items:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={"spec":{"itemsType":"avl_resource","propType":"propitemname","propName":"reporttemplates","propValueMask":"Viajes%20con%20agrupación","sortType":"sys_name"},"force":1,"flags":8193,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemsType":"avl_resource"La búsqueda se realizará por recursos.
"propType":"propitemname"La búsqueda se realizará por el nombre del subelemento.
"propName":"reporttemplates"La búsqueda se realizará por el nombre de la plantilla del informe.
"propValueMask":"Viajes%20con%20agrupación"La respuesta mostrará una lista de recursos en los que se ha creado la plantilla del informe con el nombre Viajes con agrupación.
"sortType":"sys_name"La clasificación se realizará por el nombre del elemento.
"force":1Los resultados de búsquedas anteriores no se tendrán en cuenta.
"flags":8193

La respuesta contendrá información sobre las propiedades básicas y las plantillas de informes creadas.

1 + 8192 = 8193

"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.
 Respuesta
{
	"searchSpec":{
		"itemsType":"avl_resource",
		"propName":"reporttemplates",
		"propValueMask":"Viajes con agrupación",
		"sortType":"sys_name",
		propType:"propitemname",
		or_logic:"0"
		},
	"dataFlags":8193,
	"totalItemsCount":1,
	"indexFrom":0,
	"indexTo":0,
	"items":[
		{
			"nm":"sdk_account",
			"cls":3,
			"id":12345678,
			"mu":0,
			"rep":{
				1:{
					"id":1,
					"n":"Lista de viajes",
					"ct":"avl_unit",
					"c":59352
				},
				2:{
					"id":2,
					"n":"Viajes con agrupación",
					"ct":"avl_unit",
					"c":6883
				}
			},
			"repmax":-1,
			"uacl":-1
		}
	]
}

Prestemos atención a los siguientes parámetros de la respuesta:

  • nm: nombre del recurso;
  • rep: array de plantillas de informes creadas en el recurso;

    Si este parámetro aparece vacío, significa que no se han creado plantillas de informes en el recurso.

  • n: nombre del subelemento;
  • id: ID del sistema.

En este caso, el usuario tiene acceso al recurso sdk_account con el ID del sistema 12345678, en el que se encuentra la plantilla del informe Viajes con agrupación con el ID del sistema 2.

3. Ejecución del informe

Usamos la solicitud report/exec_report.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/exec_report&params={"reportResourceId":12345678,"reportTemplateId":2,"reportObjectId":55555,"reportObjectSecId":0,"interval":{"flags":0,"from":1688144400,"to":1688173199},"remoteExec":1}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"reportResourceId":12345678La plantilla del informe se seleccionará del recurso con el ID del sistema 12345678.
"reportTemplateId":2Se ejecutará la plantilla del informe con el ID del sistema 2.
"reportObjectId":55555El informe se ejecutará para la unidad con el ID del sistema 55555.
"reportObjectSecId":0El informe no se ejecutará para un subelemento.
"flags":0El informe se ejecutará para el intervalo especificado.
"from":1688144400

El inicio del intervalo será el 30 de junio de 2023 a las 20:00 (GMT+0).

En las solicitudes se utiliza el tiempo Unix. Para convertir la fecha y hora a tiempo Unix, se pueden usar herramientas en línea de acceso público.

"to":1688173199El final del intervalo será el 1 de julio de 2023 a las 03:59 (GMT+0).
"remoteExec":1El informe se ejecutará en segundo plano en el servidor.
 Respuesta
{
	"remoteExec":1
}

4. Verificación del estado de ejecución

Dado que el informe se ejecuta en segundo plano en el servidor, verificamos el estado de su ejecución utilizando la solicitud report/get_report_status.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/get_report_status&params={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"status":4
}

El código de estado 4 significa que el informe se ha completado. La interpretación de los demás valores se puede encontrar en la página con la descripción de la solicitud.

5. Obtención del resultado del informe

Usamos la solicitud report/apply_report_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/apply_report_result&params={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"reportResult":{
		"msgsRendered":0,
		"stats":[],
		"tables":[
			{
				"name":"unit_trips",
				"label":"Viajes",
				"grouping":{
					"nested":{
						"type":"day"
					},
					"type":"month"
				},
				"flags":4491,
				"rows":2,
				"level":3,
				"columns":6,
				"header":[
					"№",
					"Agrupación",
					"Comienzo",
					"Fin",
					"Duración",
					"Kilometraje"
				],
				"header_type":[
					"",
					"",
					"time_begin",
					"time_end",
					"duration",
					"mileage"
				]
			}
		],
		"attachments":[]
	}
}

Tres parámetros clave de la respuesta que nos interesan son los siguientes:

  • tables: muestra la cantidad de tablas en el informe en forma de array. En este caso, solo se menciona una tabla: Viajes, por lo que su índice será 0.
  • rows: cantidad de filas en la tabla, en este caso son 2. Por lo tanto, sus índices están en el rango de 0 a 1. Se refiere solo a las filas en el nivel superior de anidamiento, dentro de ellas puede haber más.
  • level: cantidad de niveles de anidamiento, en este caso es 3, ya que el informe tiene agrupación. Por lo tanto, en la tabla existen niveles con índices de 0 a 2.

Los índices de tablas, filas, columnas y niveles de anidamiento comienzan desde 0. Esto debe tenerse en cuenta al referirse a ellos posteriormente.

También se pueden enumerar brevemente otros parámetros de la respuesta. El parámetro columns indica la cantidad de columnas, luego sus nombres se describen en el parámetro header. El valor cero del parámetro msgsRendered indica que en la plantilla del informe no se incluye la visualización de mensajes en el mapa. Los parámetros vacíos stats y attachments indican que en la plantilla del informe no hay Estadísticas ni adjuntos (por ejemplo, gráficas).

6. Selección de filas en una tabla multinivel

Conociendo el índice del contenido de la tabla, la mostramos utilizando la solicitud report/select_result_rows.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/select_result_rows&params={"tableIndex":0,"config":{"type":"range","data":{"from":0,"to":1,"level":2}}}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"tableIndex":0Se mostrará el contenido de la tabla con el índice 0.
"type":"range"Se solicitará una secuencia de filas.
"from":0La primera fila mostrada tendrá el índice 0.
"to":1La última fila mostrada tendrá el índice 1.
"level":2El resultado mostrará niveles de anidamiento hasta el índice 2.
 Respuesta
[
	{
		"n":0,
		"i1":0,
		"i2":1188,
		"t1":1688144420,
		"t2":1688158739,
		"d":1,
		"c":[
			"1",
			"June",
			{
				"t":"20:00:20",
				"v":1688144420,
				"y":47.2941741943,
				"x":26.4906959534,
				"u":55555
			},
			{
				"t":"23:58:59",
				"v":1688158739,
				"y":43.1049079895,
				"x":25.6173667908,
				"u":55555
			},
			"3:53:36",
			"576.60 km"
		],
		"r":[
			{
				"n":0,
				"i1":0,
				"i2":1188,
				"t1":1688144420,
				"t2":1688158739,
				"d":2,
				"c":[
					"1.1",
					"2023-06-30",
					{
						"t":"20:00:20",
						"v":1688144420,
						"y":47.2941741943,
						"x":26.4906959534,
						"u":55555
					},
					{
						"t":"23:58:59",
						"v":1688158739,
						"y":43.1049079895,
						"x":25.6173667908,
						"u":55555
					},
					"3:53:36",
					"576.60 km"
				],
				"r":[
					{
						"n":0,
						"i1":0,
						"i2":790,
						"t1":1688144420,
						"t2":1688154878,
						"d":0,
						"c":[
							"1.1.1",
							"2023-06-30 20:00:20",
							{
								"t":"20:00:20",
								"v":1688144420,
								"y":47.2941741943,
								"x":26.4906959534,
								"u":55555
							},
							{
								"t":"22:54:38",
								"v":1688154878,
								"y":43.8697662354,
								"x":26.0177116394,
								"u":55555
							},
							"2:54:18",
							"469.54 km"
						]
					},
					{
						"n":1,
						"i1":936,
						"i2":1188,
						"t1":1688155181,
						"t2":1688158739,
						"d":0,
						"c":[
							"1.1.2",
							"2023-06-30 22:59:41",
							{
								"t":"22:59:41",
								"v":1688155181,
								"y":43.8698196411,
								"x":26.0177154541,
								"u":55555
							},
							{
								"t":"23:58:59",
								"v":1688158739,
								"y":43.1049079895,
								"x":25.6173667908,
								"u":55555
							},
							"0:59:18",
							"107.06 km"
						]
					}
				]
			}
		]
	},
	{
		"n":1,
		"i1":1193,
		"i2":2910,
		"t1":1688158805,
		"t2":1688173175,
		"d":1,
		"c":[
			"2",
			"July",
				{
					"t":"00:00:05",
					"v":1688158805,
					"y":43.0983314514,
					"x":25.6316585541,
					"u":55555
				},
				{
					"t":"03:59:35",
					"v":1688173175,
					"y":41.5760040283,
					"x":26.9871864319,
					"u":55555
				},
				"3:41:42",
				"294.55 km"
		],
		"r":[
			{
				"n":0,
				"i1":1193,
				"i2":2910,
				"t1":1688158805,
				"t2":1688173175,
				"d":3,
				"c":[
					"2.1",
					"2023-07-01",
					{
						"t":"00:00:05",
						"v":1688158805,
						"y":43.0983314514,
						"x":25.6316585541,
						"u":55555
					},
					{
						"t":"03:59:35",
						"v":1688173175,
						"y":41.5760040283,
						"x":26.9871864319,
						"u":55555
					},
					"3:41:42",
					"294.55 km"
				],
				"r":[
					{
						"n":0,
						"i1":1193,
						"i2":2171,
						"t1":1688158805,
						"t2":1688169690,
						"d":0,
						"c":[
							"2.1.1",
							"2023-07-01 00:00:05",
							{
								"t":"00:00:05",
								"v":1688158805,
								"y":43.0983314514,
								"x":25.6316585541,
								"u":55555
							},
							{
								"t":"03:01:30",
								"v":1688169690,
								"y":41.7139854431,
								"x":26.3660545349,
								"u":55555
							},
							"3:01:25",
							"235.31 km"
						]
					},
					{
						"n":1,
						"i1":2340,
						"i2":2486,
						"t1":1688170034,
						"t2":1688170841,
						"d":0,
						"c":[
							"2.1.2",
							"2023-07-01 03:07:14",
							{
								"t":"03:07:14",
								"v":1688170034,
								"y":41.7140579224,
								"x":26.365901947,
								"u":55555
							},
							{
								"t":"03:20:41",
								"v":1688170841,
								"y":41.7122383118,
								"x":26.3712425232,
								"u":55555
							},
							"0:13:27",
							"1.39 km"
						]
					},
					{
						"n":2,
						"i1":2833,
						"i2":2910,
						"t1":1688171565,
						"t2":1688173175,
						"d":0,
						"c":[
							"2.1.3",
							"2023-07-01 03:32:45",
							{
								"t":"03:32:45",
								"v":1688171565,
								"y":41.7120819092,
								"x":26.3711204529,
								"u":55555
							},
							{
								"t":"03:59:35",
								"v":1688173175,
								"y":41.5760040283,
								"x":26.9871864319,
								"u":55555
							},
							"0:26:50",
							"57.84 km"
						]
					}
				]
			}
		]
	}
]

7. Exportación a archivo

Exportamos el resultado a un archivo PDF utilizando la solicitud report/export_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/export_result&params={"format":2,"compress":0,"outputFileName":"Viajes%20con%20agrupación"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"format":2El resultado del informe se exportará en formato PDF.
"compress":0El archivo exportado no se comprimirá (no se añadirá a un archivo).
"outputFileName":"Grouped%20trips"El archivo exportado tendrá el nombre Viajes con agrupación.

La respuesta a esta solicitud API no se muestra, en su lugar, la descarga del archivo comienza automáticamente.

8. Eliminación del resultado del informe anterior

Usamos la solicitud report/cleanup_result:

https://hst-api.wialon.com/wialon/ajax.html?svc=report/cleanup_result&params={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"error":0
}

Un valor de cero significa que la eliminación fue exitosa.

Características de la obtención de resultados

La obtención de datos de las tablas se puede realizar mediante las solicitudes report/get_result_rows o report/select_result_rows, en las que se utiliza el parámetro tableIndex para referirse a la tabla con un índice determinado. Es necesario tener en cuenta que al ejecutar el informe para diferentes intervalos, el índice de una misma tabla puede cambiar debido a la presencia o ausencia de otras tablas.

Para una mejor comprensión de la situación, consideremos un ejemplo. Supongamos que en la plantilla del informe se han añadido las tablas Viajes, Descargas de combustible y Geocercas. Al ejecutar el informe para el intervalo del 1 al 3 de julio, el resultado contendrá todas las tablas, por lo que sus índices serán los siguientes:

0 — Viajes
1 — Descargas de combustible
2 — Geocercas

Y al ejecutar el informe para el intervalo del 4 al 6 de julio, los índices de algunas tablas cambiarán debido a la ausencia de descargas registradas y tomarán otros valores:

0 — Viajes
1 — Geocercas

En este ejemplo, se puede ver claramente que al ejecutar el informe para diferentes intervalos, el índice de la tabla Geocercas cambia. Por lo tanto, referirse a la tabla con el índice 2 no siempre mostrará información sobre la visita a geocercas. Para corregir situaciones como esta, se recomienda aplicar verificaciones adicionales, por ejemplo, por el nombre de la tabla o sus columnas.

Al utilizar un informe por grupo de unidades, se pueden evitar verificaciones adicionales desactivando la opción Omitir filas vacías en los ajustes de la plantilla del informe. En este caso, las tablas se mostrarán incluso si no contienen datos y tendrán filas vacías.

Ekaterina Grib,Customer Service Engineer

Si encuentra un error en el texto, por favor, selecciónelo y apriete Ctrl+Intro.
Gracias por su opinión.
Informar de un error
Texto con el error Comentario
Máximo 500 caracteres